﻿#pragma warning disable 649    // disable compiler warnings about unassigned fields

namespace TimeSheetReporting.Web.Model
{
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.ComponentModel.DataAnnotations;
    using System.Data.Objects.DataClasses;
    using System.Linq;
    using System.Web.DomainServices;
    using System.Web.Ria;
    using System.Web.Ria.Services;


    // The MetadataTypeAttribute identifies EffortMetadata as the class
    // that carries additional metadata for the Effort class.
    [MetadataTypeAttribute(typeof(Effort.EffortMetadata))]
    public partial class Effort
    {

        // This class allows you to attach custom attributes to properties
        // of the Effort class.
        //
        // For example, the following marks the Xyz property as a
        // required field and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz;
        internal sealed class EffortMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private EffortMetadata()
            {
            }

            public DateTime Date;

            public string Description;

            public double Hours;

            public int Id;

            [Include]
            public Member Member;

            [Include]
            public Project Project;
        }
    }

    // The MetadataTypeAttribute identifies MemberMetadata as the class
    // that carries additional metadata for the Member class.
    [MetadataTypeAttribute(typeof(Member.MemberMetadata))]
    public partial class Member
    {

        // This class allows you to attach custom attributes to properties
        // of the Member class.
        //
        // For example, the following marks the Xyz property as a
        // required field and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz;
        internal sealed class MemberMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private MemberMetadata()
            {
            }

            public EntityCollection<Effort> Effort;

            public int Id;

            public string Name;
        }
    }

    // The MetadataTypeAttribute identifies ProjectMetadata as the class
    // that carries additional metadata for the Project class.
    [MetadataTypeAttribute(typeof(Project.ProjectMetadata))]
    public partial class Project
    {

        // This class allows you to attach custom attributes to properties
        // of the Project class.
        //
        // For example, the following marks the Xyz property as a
        // required field and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz;
        internal sealed class ProjectMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private ProjectMetadata()
            {
            }

            public EntityCollection<Effort> Effort;

            public int Id;

            public string Name;
        }
    }
}

#pragma warning restore 649    // re-enable compiler warnings about unassigned fields
